package org.summer.lawyer.domain.bo.userwallet;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.summer.common.mybatis.core.domain.BaseEntitySearch;
import org.summer.lawyer.domain.UserWallet;

import java.io.Serial;

/**
 * 用户钱包业务对象 user_wallet
 *
 * @author summer
 * @date 2024-06-27
 */
@Schema(title ="用户钱包视图对象 user_wallet", description = "用户钱包视图对象 user_wallet")
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = UserWallet.class, reverseConvertGenerate = false)
public class UserWalletBo extends BaseEntitySearch {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 用户钱包ID
     */
    @Schema(title = "walletId", type = "Long", description = "用户钱包ID")
    //@NotNull(message = "用户钱包ID不能为空", groups = { EditGroup.class })
    private Long walletId;

    /**
     * 用户ID
     */
    @Schema(title = "wxUserId", type = "Long", description = "用户ID")
    //@NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long wxUserId;

    /**
     * 钱包总收入（单位分）
     */
    @Schema(title = "walletIncome", type = "Long", description = "钱包总收入（单位分）")
    //@NotNull(message = "钱包总收入（单位分）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long walletIncome;

    /**
     * 钱包总支出（单位分）
     */
    @Schema(title = "walletExpense", type = "Long", description = "钱包总支出（单位分）")
    //@NotNull(message = "钱包总支出（单位分）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long walletExpense;

    /**
     * 钱包可用余额（单位分）
     */
    @Schema(title = "balanceFee", type = "Long", description = "钱包可用余额（单位分）")
    //@NotNull(message = "钱包可用余额（单位分）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long balanceFee;

    /**
     * 钱包冻结金额
     */
    @Schema(title = "frozenAmount", type = "Long", description = "钱包冻结金额")
    //@NotNull(message = "钱包冻结金额不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long frozenAmount;


}
